package cmc.asiainfo.com.xiht_bmap.locationMap;

import android.content.Context;
import android.content.Intent;
import android.os.Handler;
import android.util.Log;

/**
 * @Author xihaitao
 * @Date 2017/2/10
 * @Function:
 *      百度地图，定位地图工具类
 */
public class MapLocationUtil {

    private static final String TAG = MapLocationUtil.class.getSimpleName();

    /**
     * @Author 席海涛[xiht@asiainfo.com]
     * @Date 2017/2/10 9:20
     * @Function:
     *      单例模式
     */
    private static MapLocationUtil instance;

    public static MapLocationUtil getInstance() {
        if (instance == null) {
            instance = new MapLocationUtil();
        }
        return instance;
    }

    /**
     * @Author 席海涛[xiht@asiainfo.com]
     * @Date 2017/2/9 15:40
     * @Function:
     *      设置定位时间间隔，如果设置时间值小于0，在日志输出报错提示，且默认提供一次定位；
     *      如果设置时间大于0但小于1000，则自动设置为1000，即1秒定位1次；
     *      如果设置的时间为0或者大于等于1000，则按设置时间来进行定位
     */
    private int span=1000;

    public void setSpan(int span) {
        if (span < 0) {
            Log.e(TAG, "您设置的时间格式错误，默认为您定位一次");
            this.span = 0;
        }else if (span > 0 && span < 1000) {
            this.span = 1000;
        }else {
            this.span = span;
        }
    }

    public int getSpan() {
        return this.span;
    }

    /**
     * @Author 席海涛[xiht@asiainfo.com]
     * @Date 2017/2/9 15:46
     * @Function:
     *      开始定位，Handler用于返回定位信息
     */
    private Handler handler;

    // 成功定位标志
    public static final int LOCATION_SUC = 100000;

    public void startLocation(Context context, Handler handler) {
        setHandler(handler);
        context.startService(new Intent(context, MapLocationService.class));
    }

    public void setHandler(Handler handler) {
        this.handler = handler;
    }

    public Handler getHandler() {
        return this.handler;
    }
}
